650. 2 Keys Keyboard
1. Question
There is only one character 'A'
on the screen of a notepad. You can perform two operations on this notepad for each step:
- Copy All: You can copy all the characters present on the screen (a partial copy is not allowed).
- Paste: You can paste the characters which are copied last time.
Given an integer n
, return the minimum number of operations to get the character 'A'
exactly n times on the screen.
2. Examples
Example 1:
Input: n = 3
Output: 3
Explanation: Intitally, we have one character 'A'.
In step 1, we use Copy All operation.
In step 2, we use Paste operation to get 'AA'.
In step 3, we use Paste operation to get 'AAA'.
Example 2:
Input: n = 1
Output: 0
3. Constraints
1 <= n <= 1000
4. References
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/2-keys-keyboard 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
5. Solutions
枚举前几种,可以发现答案是n的最小因数的和。
class Solution {
public int minSteps(int n) {
int res = 0;
for (int i = 2; i * i <= n; i++) {
while (n % i == 0) {
n /= i;
res += i;
}
}
if (n > 1) {
res += n;
}
return res;
}
}